home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 98 / Skunkware 98.iso / src / mail / pine3.96.tar.gz / pine3.96.tar / pine3.96 / pine / osdep / expnfldr.dos < prev    next >
Text File  |  1996-04-26  |  2KB  |  47 lines

  1. /*----------------------------------------------------------------------
  2.       Expand a folder name, taking account of the folders_dir.
  3.  
  4.   Args: filename -- The name of the file that is the folder
  5.  
  6.  Result: The folder name is expanded in place.  
  7.          Returns 0 and queues status message if unsuccessful.
  8.          Input string is overwritten with expanded name.
  9.          Returns 1 if successful.
  10.  
  11. BUG should limit length to MAXPATH
  12.   ----*/
  13. int
  14. expand_foldername(filename)
  15.     char *filename;
  16. {
  17.     char         temp_filename[MAXPATH+1];
  18.  
  19.     dprint(5, (debugfile, "=== expand_foldername called (%s) ===\n",filename));
  20.  
  21.     /*
  22.      * We used to check for valid filename chars here if "filename"
  23.      * didn't refer to a remote mailbox.  This has been rethought
  24.      */
  25.  
  26.     strcpy(temp_filename, filename);
  27.     if(strucmp(temp_filename, "inbox") == 0) {
  28.         strcpy(filename, ps_global->VAR_INBOX_PATH == NULL ? "inbox" :
  29.                ps_global->VAR_INBOX_PATH);
  30.     } else if(temp_filename[0] == '*' || temp_filename[0] == '{'){
  31.         strcpy(filename, temp_filename);
  32.     } else if(temp_filename[0] == '\\'
  33.           || (isalpha((unsigned char)temp_filename[0])
  34.           && temp_filename[1] == ':')) {
  35.     fixpath(temp_filename, MAXPATH);
  36.         strcpy(filename, temp_filename);
  37.     } else if(F_ON(F_USE_CURRENT_DIR, ps_global)){
  38.     strcpy(filename, temp_filename);
  39.     } else if(ps_global->VAR_OPER_DIR){
  40.     build_path(filename, ps_global->VAR_OPER_DIR, temp_filename);
  41.     } else {
  42.     build_path(filename, ps_global->folders_dir, temp_filename);
  43.     }
  44.     dprint(5, (debugfile, "returning \"%s\"\n", filename));    
  45.     return(1);
  46. }
  47.